Byzantine conditions

Terms from Artificial Intelligence: humans at the heart of algorithms

Byzantine conditions are apparently rare (but in practice possibly not) confluences of parameters, variables or situations which give rise to unexpectedly bad consequences. For example, some sortling algorithms behave particularly badly when given an iniitally fully sorted list of values. Most algorithms have worst case scenarios, when they behave very badly, but so ling as they are rare this is accpeted. However, soemtimes the structure of processes that give rise to input data means these rare situations happen surprisingly ooftem -- the case of a sorted list is one.

One way to avoid Byzantine conditions is to insert some form of randomness or {[stochastic}} choices. For example, a {[dterministic}} version of quicksort uses the first element as a separator to divide the rest of the list into those greater and smaller. This leads precisely to a worst case situation with a sorted list as input -- a Byzantine condition. If instead the separator is chosen as a random item from the list, the worst case can still happen, but is vanishingly rare.

Used on page 143